iT邦幫忙

0

(筆記D2) Spring MVC 框架處理流程

  • 分享至 

  • xImage
  •  

2-1 使用 Spring MVC 框架提供的分派器(Dispatcher Servlet), 處理請求流程

Dispatcher Servlet 類別 :

  • Package (套件) : org.springfromework.web.servlet。

  • MVC 架構支援1個 Web 應用程式可設定多個 Dispatcher Servlet。

  • 每個 Dispatcher Servlet 都可載入獨立 Spring 設定檔, 形成獨立 Spring Bean Container (就是 Web Application Context 物件), 且 Bean 不與其他 Dispatcher Servlet 共用。

  • Dispatcher Servlet 會優先從自己的 Web Application Context 物件內尋找需要的 Bean 元件, 若找不到則會講尋找任務交給 Root Web Application Context 物件。
    <Root Web Application Context : 設定 Service、DAO等元素並使用 Context Loader Listener 載入而產生的 Bean Container>
    https://ithelp.ithome.com.tw/upload/images/20210927/20142439ZXrL0ZtnLK.png
    https://ithelp.ithome.com.tw/upload/images/20210927/20142439z1q0ftow3r.png

  • Spring Web MVC 架構在初始化 Dispatcher Servlet 時, 預設尋找 /WEB-INF/-servlet.xml 的檔案, 產生檔案中的 Bean 元件並覆蓋 Root Web Application Context 同名的 Bean 元件。

  • 其中是 web.xml 內 Dispatcher Servlet 的 標籤設定值

  • 可在 Dispatcher Servlet 的標籤內, 使用標籤以及 context Config Location 更換檔案名稱與目錄。

**修改 Dispacher Servlet 使用的 Spring 組態設定檔預設檔名 : **
https://ithelp.ithome.com.tw/upload/images/20210927/20142439hMucIAZxBJ.png

Dispacher Servlet 的初始化會產生一系列特殊 Bean 元件 :

  • Handler Mapping、View Resolver等, 讓 Dispacher Servlet 處理 HTTP Request 以及產生 View 提供顯示畫面使用。

  • 預設的特殊 Bean 元件定義在 org.springfromework.web.servlet 套件的 Dispacher Servlet.properties 檔。

  • 當-servlet.xml 組態設定檔, 設定任何1個特殊 Bean 元件(Handler Mapping、View Resolver), 預設的特殊 Bean 元件就被忽略。

為 Spring Web MVC 架構核心, 實作 Front Controller 設計模式的主要元件

Dispacher Servlet 的基本流程 :
1. 負責攔截 HTTP Request 的動作(都要經過它)。
2. 根據 Handler Mapping 的註冊資料, 取得需要執行的 Controller 元件。
3. 呼叫 Controller 元件處理 HTTP Request 並取得 Controller 元件的回傳值 Model And View。
4. 根據 View Resolver 註冊資料取得要導向的 View 元件。
5. 將 HTTP Request 導向顯示的 View 元件。

2-2 前端控制器模式(Front Controller Pattern)

  • 是一個集中管理請求處理機制, 所有請求都交由一個單一處理程式負責, 此處裡程式可以完成相關驗證、授權、追蹤或者記錄log等請求(Request)並將請求交由對應的程式處理。
  • 前端控制器(Front Controller) : 負責處理應用程式所有請求的單一處理程式, 可應於 Web 應用程式或 GUI 視覺化界面的應用程式。
  • 排程器(Dispacher) : 前端控制器可使用轉發物件執行相關請求到對應的處理程式。
  • 檢視(View) : 用來提供請求(Request)顯示對應功能所建立的物件。

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言